﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;

namespace vudu.PaginasWeb.G2Horario
{
    public partial class indexPreMatricula : System.Web.UI.Page
    {
        #region Atributos

            private List<HorarioPreMatricula> _misPreMatriculasSeleccionadas;
            private List<HorarioPreMatricula> _misPreMatriculas;
            private Estudiante _estudianteActual;

        #endregion FinAtributos

        #region Metodos

            protected void InitSecure()
            {
                string miRol = (string)Session["rol"];
                if (miRol != "Estudiante")
                    Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

                //Session["rol"] = "";
                _estudianteActual = new Estudiante();
                _estudianteActual = (Estudiante)Session["usuario"];


                if (_estudianteActual.ExistPreMatriculaActiva())
                {
                    //labelNoAgregar.Visible = false;
                    btnDeletePreMatricula.Enabled = false;
                    btnDeletePreMatricula.Visible = false;
                }
                else
                {
                    btnDeletePreMatricula.Visible = true;
                    btnDeletePreMatricula.Enabled = true;
                    //labelNoAgregar.Visible = true;
                    //labelNoAgregar.Text = "<li><a href=\"../G2Horario/indexAgregarPreMatricula.aspx\">AgregarPreMatricula</a></li>";
                }
                _estudianteActual.SecuenceCounter = 0;
            }            

            protected void InitComponents()
            {
                labelNoPreMatricula.Text = "";
                _misPreMatriculas = new List<HorarioPreMatricula>();
                _misPreMatriculasSeleccionadas = new List<HorarioPreMatricula>();
                _estudianteActual.PageCounter = 0;
                _estudianteActual.PreMatriculaModificable = new HorarioPreMatricula();
            }

            protected void ListLoad(List<HorarioPreMatricula> misPreMatriculas)
            {
                if ((misPreMatriculas != null) && (misPreMatriculas.Count > 0))
                    foreach (HorarioPreMatricula miPreMatricula in misPreMatriculas)
                    {
                        if (miPreMatricula.Estatus.Equals("Activo") || miPreMatricula.Estatus.Equals("Pendiente"))
                        {
                            ListItem miPrematriculaChk = new ListItem();
                            miPrematriculaChk.Value = miPreMatricula.Codigo.ToString();
                            miPrematriculaChk.Text = "<a class=\"miga\" href=\"consultarPreMatricula.aspx?cod=" +
                                                        miPreMatricula.Codigo.ToString() + "\">" +
                                                        miPreMatricula.Fecha.Day.ToString() + '/' +
                                                        miPreMatricula.Fecha.Month.ToString() + '/' +
                                                        miPreMatricula.Fecha.Year.ToString() + ' ' +
                                                        miPreMatricula.Nombre + "</a><br />";
                            checkListPreMatriculas.Items.Add(miPrematriculaChk);
                        }
                    }
                else if (misPreMatriculas.Count == 0)
                {
                    labelNoPreMatricula.Text = "Usted no ha cargado ninguna PreMatricula";
                    btnDeletePreMatricula.Enabled = false;
                }
            }

            protected void Page_Load(object sender, EventArgs e)
            {
                InitSecure();
                InitComponents();
                labelEstudiante.Text = _estudianteActual.Nombre + "&nbsp;" + _estudianteActual.Apellido;
                _estudianteActual.LoadPreMatriculas();
                _misPreMatriculas = _estudianteActual.ListaHorarioPreMatricula;

                ListLoad(_misPreMatriculas);
            }

            protected void btnDeletePreMatricula_Click(object sender, EventArgs e)
            {
                int counter = 0;
                foreach (ListItem misPreMatriculasSeleccionadas in checkListPreMatriculas.Items)
                {
                    if (misPreMatriculasSeleccionadas.Selected)
                    {
                        _estudianteActual.EliminarHorario(Int32.Parse(misPreMatriculasSeleccionadas.Value));
                        counter++;
                    }
                }
                if (counter == 0)
                {
                    labelOperationStatus.CssClass = "texto";
                    labelOperationStatus.Text = "<b>Operacion fallida: Debe seleccionar al " +
                                                "menos una PreMatricula para eliminar</b>";
                }
                else
                {
                    Session["rol"] = "Estudiante";
                    Response.Redirect("indexPreMatricula.aspx");
                }
            }

        #endregion FinMetodos
    }
}